home *** CD-ROM | disk | FTP | other *** search
- /* =============
- * C3DObjects.hh
- * =============
- *
- * Implemented by C3DObjects.cc
- */
-
- #ifndef C3DOBJECTS_HH
- #define C3DOBJECTS_HH
-
- #include "C3DTypes.hh"
- #include "C3DMatrix.hh"
- #include "C3DGeometry.hh"
-
- class C3DContext {
- public:
- // list of objects
- };
-
- class C3DSubcontext : public C3DContext {
- public:
- C3DOrientation orient;
- double magnification;
- double opacity;
- };
-
- class C3DSpace : public C3DContext {
- public:
- };
-
- class C3DObject {
- public:
- C3DContext *context;
- C3DPoint loc;
- public:
- void Translate(double dx, double dy, double dz);
- void Translate(const C3DVector &inVector);
- void Yaw(double dtheta);
- void Pitch(double dphi);
- void Roll(double dpsi);
- };
-
- class C3DThing : public C3DObject {
- public:
- //C3DOrientation orient;
- C3DTransform xform;
- C3DTransform inverse;
- public:
- void Translate(double dx, double dy, double dz);
- void Yaw(double dtheta);
- void Pitch(double dphi);
- void Roll(double dpsi);
- void Scale(double factor);
- };
-
- class C3DCamera : public C3DThing {
- public:
- virtual void WorldToEye(const C3DPoint &inPt, C3DPoint &outPt);
- virtual bool EyeToPort(const C3DPoint &inPt, C3DPoint &outPt);
- public:
- double viewAngle;
- };
-
- class C3DDot : public C3DObject {
- public:
- C3DColor color;
- };
-
- class C3DLineSegment : public C3DObject {
- public:
- C3DLine loc;
- C3DColor color;
- };
-
- class C3DPane : public C3DObject {
- public:
- C3DPlane plane;
- double top, left, bottom, right;
- };
-
- class C3DComposite : public C3DObject {
- public:
- C3DSubcontext subcontext;
- };
-
- #endif
-